from django.shortcuts import render

# Create your views here.

from apps.areas import models

# models.Area.objects.filter(parent=None) 拿到所有省
# hn=models.Area.objects.get(id=430000) 拿到一个省
# hn.subs.all() 拿到省的所有市
# cs=hn.subs.get(id=430100) 拿到一个市
# cs.subs.all() 拿到所有县区
# cs.subs.get(id=430102) 拿到一个县区

from django.views import View
from django.http import JsonResponse
from django.core.cache import cache
class getProvinceView(View):
    """获得省份信息"""
    def get(self,requset):
        #查看是否有缓存
        province_list=cache.get('province')
        if province_list is None:
            # 1.去数据库拿数据
            datas=models.Area.objects.filter(parent=None)
            # 2.把数据集格式化为前端需要的数据
            province_list=[{'id':x.id,'name':x.name} for x in datas]
            #将数据进行缓存 cache.set(键,值,过期时间)
            cache.set('province',province_list,60*60*24)
        # 3.返回数据
        return JsonResponse({'code':0,'errmsg':'ok','province_list':province_list})

class getCityDistrict(View):
    """获得市县区信息"""
    def get(self,request,CDid):
        province_list=cache.get(f'CD_{CDid}')
        if province_list is None:
            # 1.去数据库拿数据
            CD=models.Area.objects.get(id=CDid)
            datas=CD.subs.all()
            # 2.把数据集格式化为前端需要的数据
            province_list=[{'id':x.id,'name':x.name} for x in datas]
            cache.set(f'CD_{CDid}',province_list,60*60*24)
        # 3.返回数据
        return JsonResponse({'code': 0, 'errmsg': 'ok', 'sub_data': {'subs':province_list}})
